﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using FileHelpers;
using Event_Planner.Models;
using System.Web.Mvc;
using System.Web.Security;
using System.IO;


namespace Event_Planner.Utils
{
    public class ImportarExportarContactos
    {
        private DataAccess.Contactos DataAccessContactos = new DataAccess.Contactos();


        public void ExportarContactos(string NombreUsuario,HttpResponseBase Response)
        {
            FileHelperEngine<CSVModel> engine = new FileHelperEngine<CSVModel>();

            Response.ClearContent();
            string attachment = "attachment; filename=Contacts.csv";
            Response.AddHeader("content-disposition", attachment);
            Response.ContentType = "text/csv";
            System.IO.StringWriter sw = new System.IO.StringWriter();

            engine.HeaderText = "Nombre;Apellido;Email";

            engine.WriteStream(sw, DataAccessContactos.ListaContactosSinID(NombreUsuario), int.MaxValue);

            Response.Write(sw.ToString());
            Response.End();
        }


        public void ImportarContactos(string NombreUsuario, HttpPostedFileBase file)
        {
            FileHelperEngine<CSVModel> engine = new FileHelperEngine<CSVModel>();

            engine.Options.IgnoreFirstLines = 1;  // ignoramos el header.

            var Contactos = engine.ReadStream(new StreamReader(file.InputStream)) as CSVModel[];

            UsuariosModel UsuarioActual = DataAccessContactos.db.Usuarios.Find(NombreUsuario);

            foreach (CSVModel Contacto in Contactos)
            {
                ContactosModel contactomodel = new ContactosModel
                {
                    NombreContacto = Contacto.Nombre,
                    ApellidoContacto = Contacto.Apellido,
                    EmailContacto = Contacto.Email
                };

                UsuarioActual.ContactosUsuario.Add(contactomodel);

            }

            DataAccessContactos.db.SaveChanges();

        }

       

    }
}